package lin

import (
	"math"
	"math/rand"
	"time"
)

type S数学 struct {
}

func (类 S数学) S四舍五入(数值 float64, 保留小数位数 int) float64 {
	位数 := math.Pow10(保留小数位数)
	return math.Round(数值*位数) / 位数
}

func (类 S数学) Q取随机数(最小值, 最大值 int) int {
	var 随机数生成器 = rand.New(rand.NewSource(time.Now().UnixNano()))
	return 随机数生成器.Intn(最大值-最小值+1) + 最小值
}

// Q取绝对值 获取数值的绝对值
func (类 S数学) Q取绝对值(数值 float64) float64 {
    return math.Abs(数值)
}
// Q取平方 计算一个数的平方
func (类 S数学) Q取平方(数值 float64) float64 {
    return math.Pow(数值, 2)
}

// Q取开方 计算一个数的平方根
func (类 S数学) Q取开方(数值 float64) float64 {
    return math.Sqrt(数值)
}

// S四舍五入到整数 将浮点数四舍五入到最接近的整数
func (类 S数学) S四舍五入到整数(数值 float64) int {
    return int(math.Round(数值))
}
